package com.gxar.quick.ar.server.db.model;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;

/**
 * @author nice
 * @version 1.0
 * @created 2023/11/16.
 */
@Data
@ToString
@Entity
@Table(name = "transaction_wechat")
public class TransactionWechatEntity {

    /**
     * 通知的唯一ID
     */
    @NotNull(message = "[通知的唯一ID]不能为空")
    @ApiModelProperty("通知的唯一ID")
    @Id
    private String id;
    /**
     * 通知创建的时间
     */
    @ApiModelProperty("通知创建的时间")
    private String createTime;
    /**
     * 通知的类型
     */
    @ApiModelProperty("通知的类型")
    private String eventType;
    /**
     * 通知的资源数据类型
     */
    @ApiModelProperty("通知的资源数据类型")
    private String resourceType;
    /**
     * 回调摘要
     */
    @ApiModelProperty("回调摘要")
    private String summary;
    /**
     * 微信支付系统生成的订单号
     */
    @ApiModelProperty("微信支付系统生成的订单号")
    private String transactionId;
    /**
     * 商户系统内部订单号
     */
    @ApiModelProperty("商户系统内部订单号")
    private Long transactionOrderId;
    /**
     * 交易类型
     */
    @ApiModelProperty("交易类型")
    private String tradeType;
    /**
     * 交易状态
     */
    @ApiModelProperty("交易状态")
    private String tradeState;
    /**
     * 交易状态描述
     */
    @ApiModelProperty("交易状态描述")
    private String tradeStateDesc;
    /**
     * 银行类型，采用字符串类型的银行标识
     */
    @ApiModelProperty("银行类型，采用字符串类型的银行标识")
    private String bankType;
    /**
     * 附加数据
     */
    @ApiModelProperty("附加数据")
    private String attach;
    /**
     * 支付完成时间
     */
    @ApiModelProperty("支付完成时间")
    private String successTime;
    /**
     * 用户在直连商户AppID下的唯一标识
     */
    @ApiModelProperty("用户在直连商户AppID下的唯一标识")
    private String openId;
    /**
     * 订单总金额，单位为分
     */
    @ApiModelProperty("订单总金额，单位为分")
    private Integer total;
    /**
     * 用户支付金额，单位为分
     */
    @ApiModelProperty("用户支付金额，单位为分")
    private Integer payerTotal;
    /**
     * CNY：人民币，境内商户号仅支持人民币
     */
    @ApiModelProperty("CNY：人民币，境内商户号仅支持人民币")
    private String currency;
    /**
     * 用户支付币种
     */
    @ApiModelProperty("用户支付币种")
    private String payerCurrency;
    /**
     * 终端设备号（门店号或收银设备ID）
     */
    @ApiModelProperty("终端设备号（门店号或收银设备ID）")
    private String deviceId;
    /**
     * 优惠功能，享受优惠时返回该字段
     */
    @ApiModelProperty("优惠功能，享受优惠时返回该字段")
    private String promotionDetail;
}
